package kr.pe.johnkim.waiting.mobile.service;

import kr.pe.johnkim.waiting.mobile.domain.WaitingRecommendation;

import java.util.List;

/**
 * @author : John_Kim <cale9797@gmail.com>
 * @date : 13. 6. 17.
 */
public interface WaitingRecommendationService {

    /**
     * 사용자의 추천 중복을 확인 한다.
     *
     * @param waitingRecommendation
     * @return
     */
    public WaitingRecommendation selectDuplicationRecommendation(WaitingRecommendation waitingRecommendation);

    /**
     * 추천을 등록 한다.
     *
     * @param waitingRecommendation
     */
    public void registerRecommendation(WaitingRecommendation waitingRecommendation);

    /**
     * 추천 정보를 업데이트 한다.
     *
     * @param waitingRecommendation
     */
    public void updateRecommendation(WaitingRecommendation waitingRecommendation);

    /**
     * 추천을 비활성화 한다.
     *
     * @param waitingRecommendation
     */
    public void updateDeactivateRecommendation(WaitingRecommendation waitingRecommendation);

    /**
     * 검색한 가맹점들에 대한 추천 목록을 가져 온다.
     *
     * @param waitingRecommendation
     * @return
     */
    public List<WaitingRecommendation> selectSearchRecommendationList(WaitingRecommendation waitingRecommendation);

    /**
     * 특정 가맹점에 대한 추천 정보를 가져 온다.
     *
     * @param waitingRecommendation
     * @return
     */
    public WaitingRecommendation selectRecommendationInformation(WaitingRecommendation waitingRecommendation);

    /**
     * 사용자가 최초 등록한 추천을 가져 온다.
     * 추천을 최초 등록할때 호출한다.
     *
     * @param waitingRecommendation
     * @return
     */
    public WaitingRecommendation selectRecentRecommendationInformation(WaitingRecommendation waitingRecommendation);
}
